--[[
描述 ： UIDropMenuItem
作者 ： 付大志
时间 ： 15/11/02
注意：此类不作为单独的控件使用 ，是UIDropMenu的衍生类
]]
UIDropMenuItem = Class(MLView,'UIDropMenuItem');

UIDropMenuItem.text           = nil;      -- 显示文本
UIDropMenuItem.fontHeight         = nil;    -- 字体高度
UIDropMenuItem.fontColor          = nil;      -- 字体背景颜色
UIDropMenuItem.fontFocusColor     = nil;    -- 字体聚集颜色
UIDropMenuItem.bgColor          = nil;    -- 背景图片
UIDropMenuItem.focusColor       = nil;    -- 聚集图片
UIDropMenuItem.LOSE_FOCUS_INTERVAL  = AW(15);-- 失去焦点间隔 闸值
UIDropMenuItem.mWidth         = nil;      -- 宽度
UIDropMenuItem.mHeight        = nil;      -- 高度
UIDropMenuItem.mIsFocus         = nil;    -- 是否聚焦
UIDropMenuItem.mDownX           = nil;    -- 触摸屏x坐标
UIDropMenuItem.mDownY           = nil;    -- 触摸屏Y坐标

--[[
功能   ： 初始化 UIDropMenu 控件
参数   ： w        宽度
       h        高度
       viewCtrl 所在Ctrl
       id     控件id
返回   ： button 实例
]]

function UIDropMenuItem:init(width, height, viewCtrl, id)

  width  = width or UITheme.BUTTON_WIDTH;
  height = height or UITheme.BUTTON_HEIGHT;

  -- 初始化
  -- local self = UIButton:initView(width, height, viewCtrl, id);
  self:initView(width, height, viewCtrl, id);
  --print('--------------------點cc擊-btn----------',self);
  self.mWidth = width;
  self.mHeight = height;
  self.fontHeight = AW(16);
  self.fontColor = 0X888888;
  self.fontFocusColor = 0X444444;

  self.onPoint = function (evt, x, y)
    -- body
    --print('--------------------點cc擊-btn----------event',evt)


    local interval =  self.LOSE_FOCUS_INTERVAL;

    if evt == MLView.PointDown then
      --print('--------------------點擊-----------', MLView.PointDown);
      self.mDownX = x;
      self.mDownY = y;
      self.mIsFocus= true;
    elseif evt == MLView.PointUp then
      --print('--------------------抬起-----------', MLView.PointUp);
      self.mDownX = x;
      self.mDownY = y;
      self.mIsFocus = false;
    elseif evt == MLView.PointMove then
      --print('-----------------移動---------', MLView.PointMove);
      if math.abs(x-self.mDownX) > interval or math.abs(y-self.mDownY) > interval then
        self.mIsFocus = false;
      end
    elseif evt == MLView.PointCanCel then
      --print('-----------------离开---------', MLView.PointMove);
      self.mDownX = x;
      self.mDownY = y;
      self.mIsFocus = false;
    end

    self:draw();
    return 1;  -- 事件不拦截
  end


  return self;
end


--[[
功能   ： 设置文本
参数   ： text    文本
返回   ： 无
]]
function UIDropMenuItem:setText(text)
  self.text = text;
end

--[[
功能   ： 处理触摸笔事件
参数   ： evt   事件种类
         x     坐标
         y     坐标
返回   ： 无
]]
-- --[[
-- PointDown  触摸笔按下 0
-- PointUp  触摸笔抬起 1
-- PointMove  触摸笔移动 2
-- PointCanCel 触摸笔取消  3
-- ]]
function UIDropMenuItem:onPoint(evt, x, y)

end

--[[
功能   ： 画控件
参数   ： 无
返回   ： 无
]]
function UIDropMenuItem:draw()


 
  local g = self:getGraphic();
  g:clear();
  
  local color, bgColor = self.fontColor, 0xffffff;
  -- print('-------self.bgImage', self.bgImage);
  if self.mIsFocus then
    color = self.fontFocusColor;
    bgColor = 0xEEEEEE;
  end

  if self.parent.curSel == self.index then
       bgColor = 0xEEEEEE;
       color = self.fontFocusColor;
  end
   
  g:fillRect(0,0,self.mWidth,self.mHeight,bgColor)
    if  self.index ~= 1 then 
        g:drawLine ( 0, 0, self.mWidth, 0, 0xEEEEEE, 1);
    end
  
  local strw = MLNative.measStringWidth(self.text, self.fontHeight, self.fs);
  local x, y = (self.mWidth-strw)/2, (self.mHeight-self.fontHeight)/2;


  if self.text then
 --   if self.align == 0 then
       g:drawString(self.text, AW(2), y, color, self.fontHeight, self.fs);
 --   else
 --      g:drawString(self.text, x, y, color, self.fontHeight, self.fs);
  --  end
  -- g:drawLine(0, y, 0, y+self.fontHeight, 0, 1);
  end
end

--[[
功能   ： 显示控件
参数   ： 无
返回   ： 无
]]
function UIDropMenuItem:show()
  self:draw();
end

--[[
功能   ： 更新控件
参数   ： 无
返回   ： 无
]]
function UIDropMenuItem:update()
  self:draw();
end



